為物件加入剛體後會使物件附加物理的特性,任何會動的遊戲物件都需要用到剛體來做到基本的物理互動
在製作3D物件時會用到Rigidbody這個元件
而製作2D物件則是Rigidbody2D
這裡先介紹一下Rigidbody2D欄位裡的各項設定
Dynamic(動態):預設的型態,用在物理作用模擬下會移動的物件,會受到重力、碰撞等物理條件的影響,與所有類型的剛體碰撞,最耗效能的類型。
Kinematic(運動學):不會受到物理作用力影響,但是可以對其他剛體發揮物理影響,對系統資源要求較低。僅能碰撞Dynamic物件,無法碰撞Kinematic及Static物件。
Static(靜態):在物理作用模擬下不會移動,可以視其爲一個具有無限質量、不可移動的物體,最不耗系統資源。
可以放入自訂的Physic 2D物理材質,用來調整物件碰撞時發生的摩擦和彈性。
是否應用物理模擬的開關,關閉時任何附加的Collider2D的碰撞和Joint2D的約束效果都不會參與物理模擬。
依據物件的碰撞器外形大小去自動計算物件的質量,勾選後無法改動Mass欄位的數值
碰撞偵測的模式
決定rigidbody要不要啟用,在物件靜止時就會進入休眠減少不必要的運算,只有再次被改變屬性,或是透過事件產生改變才會再次啟用。有以下幾種模式:
能夠改善不規則位移,如果物件運動看起來有不明抖動可以打開這個進行修正。
設定剛體的移動和旋轉限制
遊戲物件在加入Rigidbody後會因為物理作用開始墜落,3D遊戲物件可以先將Use Gravity的設定取消,2D遊戲物件則是取消Simulated的設定讓物件不再受到重力影響。或是在地面和遊戲物件都加入Collider碰撞器元件,讓遊戲物件會碰撞到地面而停止墜落
參考資料
https://docs.unity3d.com/2022.2/Documentation/Manual/Rigidbody2D-Static.html
https://www.twblogs.net/a/5b8cfcc82b717718833874f1
https://www.slideshare.net/sshiouwu/unity-2di-179107075